#####################################################################################
#
# 使用 pymssql 动态查询 SQL Server
#
#####################################################################################

import pymssql

# 使用 with 语句来处理 Connection 和 Cursor 对象，这样就不需要手动关闭他们了
with pymssql.connect('msdbt', 'wluser', 'wlpwd.123', 'wldbtest') as conn:
    with conn.cursor(as_dict = True) as cursor:
        # 创建一个存储过程
        cursor.execute("""
            CREATE PROCEDURE FindPerson
                @name VARCHAR(100)
            AS BEGIN
                SELECT * FROM persons WHERE name = @name
            END
        """)

        # 调用上面的存储过程
        cursor.callproc('FindPerson', ('Jane Doe', ))

        # 取得所有结果
        # 结果是 [{'id': 2, 'name': 'Jane Doe', 'salesrep': 'Joe Dog'}]
        result = cursor.fetchall()

        # 显示所有行
        for row in result:
            print(row)

